Управление потоком
Оператор if
Помимо хранения информации, переменные полезны для управления тем, что показывается игроку. Для этого используются операторы if
.
Оператор if
позволяет контролировать, будет ли показан определённый блок контента. Вы указываете условие, которое проверяется; если оно возвращает значение "истина", то все строки между операторами <<if>>
и <<endif>>
выполняются.
Например, рассмотрим следующий код:
<<set $gold_amount = 5>>
Я хочу купить пирог!
<<if $gold_amount < 10>>
Но у меня недостаточно денег!
<<endif>>
В этом примере переменной $gold_amount
присваивается значение 5. Затем показывается строка "Я хочу купить пирог!", после чего проверяется, меньше ли $gold_amount
10. Если это так (а так и есть), то будет выполнена строка "Но у меня недостаточно денег!".
Операторы elseif
и else
Вы можете использовать операторы elseif
и else
, чтобы обрабатывать различные ситуации в одном операторе if
.
Оператор elseif
проверяет условие, если условие if
, а также все предыдущие elseif
, не выполнились.
Оператор else
не имеет условия и выполняется, если все предыдущие проверки не прошли.
Пример:
Я хочу купить пирог!
<<if $gold_amount < 10>>
Но у меня недостаточно денег!
<<elseif $gold_amount < 15>>
Нужно ещё немного подкопить!
<<else>>
И куплю!
<<endif>>
Этот код покажет различные строки в зависимости от значения $gold_amount
. Проверки выполняются сверху вниз, что означает, что чтобы выполниться, проверка в elseif
или else
должна следовать за провалившимися предыдущими условиями.
- Если меньше 10, будет выполнена строка "Но у меня недостаточно денег!".
- Если меньше 15, но больше или равно 10, будет выполнена строка "Нужно ещё немного подкопить!".
- В остальных случаях будет выполнена строка "И куплю!".
Условие, используемое в операторах if
и elseif
, должно возвращать булево значение (то есть true или false). Например, <<if 1>>
не разрешён, но <<if 1 == 1>>
— разрешён. Также не разрешено использование переменных напрямую в условиях, даже если это булевые переменные, например, <<if $isTrue>>
, где $isTrue
— булевая переменная. Вместо этого используйте <<if $isTrue == true>>
.
Условные ответы
При выводе вариантов ответа для игрока иногда может потребоваться сделать некоторые из них недоступными. Вы можете сделать это, добавив условие к ответу.
Например, если у вас есть переменная, которая отслеживает "очки репутации" игрока, называемая $reputation
, вы можете сделать определённые варианты доступными только при достижении определённого уровня репутации.
Условие добавляется к варианту через оператор if
. Пример:
Тебе сюда нельзя!
-> Конечно можно! Босс меня знает! <<if $reputation > 10>>
-> Пожалуйста?
Когда t-Plot проверяет этот набор ответов, оно проверяет выражение в if
. Если оно возвращает false
, то этот ответ пользователь не увидит.